﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.Text;

namespace RayDen.Library.Entity.Frames {
    [DataContract]
    public enum LightSourceTypes {
        [EnumMember]
        Unknown,
        [EnumMember]
        Point,
        [EnumMember]
        Directional,
        [EnumMember]
        Area,
        [EnumMember]
        EnvironmentMap,
        [EnumMember]
        Sky,
        [EnumMember]
        Sun,
    }

    [DataContract]
    [KnownType(typeof(FrameLightsource))]
    public class FrameLightsource : FrameElement {
        [DataMember]
        public LightSourceTypes LightType { get; set; }
        [DataMember]
        public ConfigurableEntity Parameters { get; set; }

        [DataMember]
        public string ProfileName { get; set; }

        public const string AreaLightGeometryName = "AreaLight.Name";
        public const string AreaLightMeshPath = "AreaLight.MeshPath";

        public const string SkyLightSunDir = "SkyLight.SunDir";
        public const string SkyLightTurbulence = "SkyLight.Turbulence";


        public const string PointLightPosition = "PointLight.Position";
        public const string DirLightDirection = "DirLight.Direction";


        public const string LightsourcePower = "PointLight.Power";
        public const string InfiniteLightMapPath = "InfiniteLight.MapPath";

    }
}

